package com.dal.manager;

import com.dal.db.bean.ActivateCode;
import com.dal.db.cache.ActivateCodeCache;
import com.sojoys.artifact.tools.ToolError;
import org.error.LoginErrorCode;


/**
 * Created by fxf on 2018-1-19.
 */
public class ActivateCodeManager {


    /**
     * 检查激活码是否有效及过期，如果有效则设置使用状态
     */
    public static void checkAndUpdateActivateCode(String activateKey,String uid) {
        ToolError.isAndTrue(LoginErrorCode.ACTIVATE_CODE_ERR,activateKey == null);

        ActivateCode activateCode = ActivateCodeCache.me().getByInvitationCode(activateKey);
        ToolError.isAndTrue(LoginErrorCode.ACTIVATE_CODE_ERR,activateCode == null);

        synchronized (activateCode) {
            ToolError.isAndTrue(LoginErrorCode.ACTIVATE_CODE_USED,activateCode.isUsed());
            activateCode.setUsed(true);
            activateCode.setUid(uid);
        }
        ActivateCodeCache.me().update(activateCode);
    }
}
